using System.Collections.Generic;

namespace SharpObjects.XpathToObjects
{
    public interface IXpathProcessor
    {
        T SelectObject<T>(object root, string xpath);
        List<T> SelectObjects<T>(object root, string xpath);
        T SelectObject<T>(List<object> objectBranch, string xpath);
        List<T> SelectObjects<T>(List<object> objectBranch, string xpath);

        T SelectObject<T>(object root, List<PathElement> xpath);
        List<T> SelectObjects<T>(object root, List<PathElement> xpath);
        T SelectObject<T>(List<object> objectBranch, List<PathElement> xpath);
        List<T> SelectObjects<T>(List<object> objectBranch, List<PathElement> xpath);
   }
}